"""
!/usr/bin/env python
-*- coding: utf-8 -*-
@Author  : MarkJia
@Site    : 
@File    : 9、控制流循环.py
"""

"""
什么是循环？
    循环语句允许我们执行一个语句或者语句组多次
    python 提供了 for 和 while 循环
    作用 ：
        1、封装重复的操作
        2、python 最重要的语法之一
    for-in ：
        1、明确的知道循环次数或者对容器进行迭代
        2、遍历容器循环   (元组，字典，字符串)
            for i in [1,2,3,4,5]:
                print(i)
        3、range()函数 ： 左0右开
            默认从0开始 。 range(101) -> 生成从0到100的数
            range(2,11)  从2到10
            (开始数值，结束数值，步长)   左闭右开 + 步长
    while :
        1、满足条件，进入循环
        2、需要设定好循环结束条件   ->  break  continue
        3、避免死循环
        count = 0
        while count < 5:
            count += 1
"""

# 循环语句:遍历可迭代对象
# 输出 1，2，3，4
for i in [1, 2, 3, 4]:
    print(i)

# range函数。前闭后开   输出1，4，7
for i in range(1, 10, 3):
    print(i)

# while语句 break跳出循环   输出1，2
count = 0
while count < 5:
    count += 1
    print(count)
    if count == 3:
        break

# continue用法 输出1,2,4,5
list_b = [1, 2, 3, 4, 5]
for i in list_b:
    if i == 3:
        continue
    print(i)

# 使用分支结构
sum = 0
for i in range(101):
    # 对 i 取余。如果余数为0，则证明 i 为偶数
    if i % 2 == 0:
        sum += i
print(sum)  # 2550

# 计算1-100偶数求和
sum = 0
for i in range(0, 101, 2):
    sum += i
print(sum)  # 2550

# 猜数字游戏，有3次机会，猜对直接跳出
import random

# 指定范围的随机整数
computer_num = random.randint(1, 100)
print(f'计算机随机生成数字为{computer_num}')

i = 1
while i < 4:
    i += 1
    input_number = int(input('输入一个数字:'))
    print(f'人为输入的数字是{input_number}')
    if computer_num == input_number:
        print('恭喜你猜对了')
        break
    elif computer_num > input_number:
        print('人为输入的数字小了')
        continue
    elif computer_num < input_number:
        print('人为输入的数字大了大了')
        continue

# 使用分支求1-100奇数和
sum = 0
i = 1
while i < 101:
    if i % 2 != 0:
        sum += i
    i += 1
print(sum)  # 2500

# 求1-100奇数和
sum = 0
for i in range(1, 101, 2):
    sum += i
print(sum)  # 2500
